//
// Action.cs
//
// Copyright (C) 2008 Lukas Lipka <lukaslipka@gmail.com>
//

using System;

namespace Dashboard.Mint.Actions {

	public abstract class Action {
		
		private string name = null;
		private string description = null;
		private double score = 0.0f;

		public Action ()
		{
		}

		public Action (string name, string description)
		{
			this.name = name;
			this.description = description;
		}

		public abstract void Execute (Match match);

		public virtual bool Valid (Match match)
		{
			return true;
		}

		public virtual Gdk.Pixbuf GetIcon (int size)
		{
			return null;
		}

		public string Name {
			get { return name; }
			protected set { name = value; }
		}

		public string Description {
			get { return description; }
			protected set { description = value; }
		}

		public Gdk.Pixbuf Icon {
			get { return GetIcon (16); }
		}

		public double Score {
			get { return score; }
			protected set { score = value; }
		}
	}
}